; (function (doc) {

  const oBtn = doc.querySelector('#btn');

  function Plus(a, b) {
    this.a = a;
    this.b = b;
    this.init();
  }

  Plus.prototype.init = function () {
    this.bindEvent();
  }

  Plus.prototype.bindEvent = function () {
    // console.log(oBtn);
    // 1. 第一种绑定事件方法
    // oBtn.onclick = function () {
    //   console.log(this); // this 指向当前触发事件的 Dom 元素
    // }

    // 2. 第二种
    // oBtn.addEventListener('click', function () {
    //   console.log(this);
    // }, false);

    // 3. 因为事件触发之后函数的 this 指向会变成当前触发事件的 Dom 节点，所以我们需要去修改一下函数的 this 指向
    oBtn.onclick = this.handleClick.bind(this);
  }

  Plus.prototype.handleClick = function () {
    console.log(this);
    console.log(this.a + this.b);
  }

  window.Plus = Plus;
})(document)

new Plus(1, 2);